約 6,096,076 件
https://w.atwiki.jp/chapati4it/pages/103.html
サンプルダウンロード ソース:BasicPlayerSample.java 実行可能形式:BasicPlayerSample.zip サンプルソース BasicPlayerSample.java import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.datatransfer.DataFlavor; import java.awt.dnd.DnDConstants; import java.awt.dnd.DropTarget; import java.awt.dnd.DropTargetAdapter; import java.awt.dnd.DropTargetDropEvent; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; import java.io.File; import java.util.List; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JSeparator; import javazoom.jlgui.basicplayer.BasicController; import javazoom.jlgui.basicplayer.BasicPlayer; import javazoom.jlgui.basicplayer.BasicPlayerException; // JMF MP3 Plugin // http //www.oracle.com/technetwork/java/javase/download-137625.html public class BasicPlayerSample extends JFrame { // ベーシックプレイヤー BasicPlayer player; // Swing用変数、定数 // ボタン用テキスト 停止 final static String STOP = "Stop"; // ボタン用テキスト 再生 final static String PLAY = "Play"; // ボタン用テキスト 一時停止 final static String PAUSE = "Pause"; // タイトル final static String TITLE = "BasicPlayerでmp3再生"; final static String FILE_NAME = "ファイル名:"; // 再生ボタン JButton bPlay; // 曲名ラベル JLabel label; public static void main(String[] args) { new BasicPlayerSample(); } // コンストラクタ public BasicPlayerSample() { setTitle(TITLE); setDefaultCloseOperation(EXIT_ON_CLOSE); setBounds(200, 100, 300, 100); setLayout(new FlowLayout()); // ドロップターゲット設定 new DropTarget(this, DnDConstants.ACTION_COPY, new MyDropTargetListener()); // ラベル設置 label = new JLabel(" mp3ファイルをドロップしてください。"); label.setPreferredSize(new Dimension(getWidth() - 10, 20)); add(label); add(getHr(2000, 0)); // 再生、停止ボタン設置 bPlay = new JButton(PLAY); bPlay.addActionListener(new bPlayAction()); JButton bStop = new JButton(STOP); bStop.addActionListener(new bStopAction()); add(bPlay); add(bStop); // BasicPlayerのインスタンス作成 player = new BasicPlayer(); setVisible(true); addComponentListener(new ComponentAdapter() { // ウィンドウサイズが変化したらラベルのサイズ変更 @Override public void componentResized(ComponentEvent e) { label.setPreferredSize(new Dimension(getWidth() - 10, 20)); } }); } // 水平線 public JSeparator getHr(int width, int hight) { JSeparator sp = new JSeparator(JSeparator.HORIZONTAL); sp.setPreferredSize(new Dimension(width, hight)); return sp; } // 再生ボタンのアクションクラス class bPlayAction implements ActionListener { @Override public void actionPerformed(ActionEvent e) { try { int status = player.getStatus(); if (status == BasicPlayer.PAUSED) { // 一時停止の場合、一時停止を解除します resume(); } else if (status == BasicPlayer.STOPPED) { // 停止中の場合、再生開始します play(); } else if (status == BasicPlayer.PLAYING) { // 再生中の場合、一時停止します pause(); } } catch (Exception ex) { // 握りつぶす } } } // 停止ボタンのアクションクラス class bStopAction implements ActionListener { @Override public void actionPerformed(ActionEvent e) { try { stop(); } catch (Exception ex) { // 握りつぶす } } } // 一時停止 private void pause() throws BasicPlayerException { // playMode = PLAY_MODE_PAUSE; player.pause(); bPlay.setText(PLAY); } // 一時停止解除 private void resume() throws BasicPlayerException { player.resume(); bPlay.setText(PLAY); } // 再生 private void play() throws BasicPlayerException { player.play(); bPlay.setText(PAUSE); } // 停止 private void stop() throws BasicPlayerException { player.stop(); bPlay.setText(PLAY); } // 開く private void open(File file) throws BasicPlayerException { // ラベル設定 label.setText(FILE_NAME + file.getName()); // 取得したファイルを開く player.open(file); play(); // 再生 } // ドロップターゲットリスナー // ドロップされたファイルを受け取り、最初のファイルだけを再生します class MyDropTargetListener extends DropTargetAdapter { @Override public void drop(DropTargetDropEvent dtde) { dtde.acceptDrop(DnDConstants.ACTION_COPY); boolean b = false; try { if (dtde.getTransferable().isDataFlavorSupported( DataFlavor.javaFileListFlavor)) { b = true; List File list = (List File ) dtde.getTransferable() .getTransferData(DataFlavor.javaFileListFlavor); // 最初のファイルだけ取得 File file = list.get(0); open(file); } } catch (Exception e) { e.printStackTrace(); } finally { dtde.dropComplete(b); } } } } 解説 特に難しい事もなく、ダウンロードしたBasicPlayerのzipに入っていた「BasicPlayerSample」を真似してちょいちょいと書いたら簡単にできてしまいました。 自力でマルチスレッドする必要もなく、BasicPlayerのインスタンスを作成して、mp3ファイルオープンして、playメソッドを呼ぶだけ。 stop()で停止、pause()で一時停止、resume()で再開、簡単にmp3が再生できます。 コメント 名前
https://w.atwiki.jp/chapati4it/pages/78.html
SwingでGUIアプリを作ったら、それを実行、配布する方法を考えないといけません。 eclipse上では「Ctrl+F11」でぽんぽん実行できますが、利用者にもそうさせるわけには行きません。 1.jarファイルを作成する Windowsではjarファイルをダブルクリックするとjavaアプリを実行できます。 1.1 jarファイルを作成したいプロジェクトを右クリック>exportを選択します。 1.2「Java>Runnable JAR File」を選択し、Nextをクリックします。 1.3「Lanch configuration」に main関数のあるクラスを設定し 「Export destination」に出力するjarファイル名を 「Save as ANT script」にチェックを入れて、出力するファイルを指定すると後で何度でも作成できて便利です。 設定出来たら「Finish」をクリックします。 1.4 出来上がったjarファイルです。 1.5 エクスプローラからjarファイルをダブルクリックすると、swingアプリが実行されます。 続き Swingアプリをexeファイルにする
https://w.atwiki.jp/yo-kichi/pages/16.html
設定ファイルをJavaで読み込む 時間取得まとめ Javaについて思ったこと Singletonで自身がスレッドになるクラスでなぞエラー Javaで効果音、BGM Javaテンプレ **何ができるか ***実装したい機能 ---- **感想 ---- コメント #pcomment(below2,noname,20,enablenamelink,enableurl) コメント
https://w.atwiki.jp/chapati4it/pages/20.html
解説 swingで、画像を表示するサンプルです。 ポイント ImageIconクラスでアイコンとして画像を読み込む JLabelにアイコンを設定 大きさも変えずただ表示するだけならとっても簡単です。 実行結果 ソース ImageTest1.java import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; // swing 画像表示サンプル // ポイント1.ImageIconクラスでアイコンとして画像を読み込む // ポイント2.JLabelにアイコンを設定 // 大きさも変えずただ表示するだけならとっても簡単です。 public class ImageTest1 extends JFrame { public static void main(String[] args) { new ImageTest1(); } public ImageTest1() { setTitle("swing 画像表示サンプル1"); // ポイント1.ImageIconクラスでアイコンとして画像を読み込む ImageIcon icon = new ImageIcon("logo3w.png"); // ポイント2.JLabelにアイコンを設定 JLabel l = new JLabel(icon); add(l); // ついでにJFrameのアイコンにも設定 setIconImage(icon.getImage()); setDefaultCloseOperation(EXIT_ON_CLOSE); setBounds(100, 100, 300, 200); setVisible(true); } } アフィリエイト
https://w.atwiki.jp/study_java/pages/12.html
JAVA言語は、Sun Microsystems社が開発したプログラミング言語です。 JavaはC言語に似た表記法を採用しているが、C++よりオブジェクト指向を極めた言語かなぁと思う。 現在あるプログラミング言語の中では、C++とJAVAは基本的な文法や式は同じなのでC++の知識がある方は 取っ付きやすい言語ではないでしょうか? Javaで開発したソフトウェアはコンピューター依存することなく、基本的にはどのような(*1)プラットフォームでも動作する。何故どのようなプラットフォームでも実行できるか?それは Javaで記載されたプログラムをコンパイル する時に、Javaバイトコードと呼ばれる(*2)中間コードに変換される。Javaのソフトウェア等はJavaバイトコードで配布され、ユーザーがダウンロードして使う際に(*3)JavaVMというソフトウェアで使用中のプラットフォームのマシン語に変換し実行を可能にしている。 (*1) プラットフォーム ソフトウェアを実行させる時の必要とするOSや環境の事である。 例)Windowsプラットフォーム上で動作するソフト等は他のOSでは実行不可である。 互換があるなら・・・w (*2) 中間コード コンパイル時に生成される、実行用コード。 (*3) JavaVM:Java仮想マシン、ネットで配布等されているJavaソフトウェアは、Javaバイトコードと言う独自の形式なので、 JavaVMで「Javaバイトコード⇒現在のプラットフォームのマシン語」と言う風に変換し実行をしてくれると言う優れもの。 JavaVMが無ければJavaの実行自体が不可である。
https://w.atwiki.jp/chapati4it/pages/104.html
MP3ファイルのID3タグを読み込んで表示するサンプル(Java ID3 Tag Library + 文字化け対応) Java ID3 Tag Libraryを使ってmp3ファイルのID3タグを読んで表示するサンプルと、 Java ID3 Tag Libraryの文字化け対応してみました。 サンプルダウンロード #ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (Id3TagReadSample.java) 文字化け対応してみたJava ID3 Tag Library jid3lib-0.5.4-chapati-custom-srconly.zip ※ファイルサイズ大きくてソースしかアップロードできませんでした。 フルバージョンはJava ID3 Tag Libraryからダウンロードして下さい。 ID3取得サンプル // mp3ファイルからID3タグを読んで表示します private void readTag(File file) { MP3File mp3file; try { mp3file = new MP3File(file); String fileName = file.getName(); String title = "--"; String albumTitle = "--"; String track = "--"; String artist = "--"; // v2タグを優先的に表示 if (mp3file.hasID3v2Tag()) { AbstractID3v2 v2 = mp3file.getID3v2Tag(); title = v2.getSongTitle(); albumTitle = v2.getAlbumTitle(); track = v2.getTrackNumberOnAlbum(); artist = v2.getLeadArtist(); } else if (mp3file.hasID3v2Tag()) { // v2タグがない場合v1タグを表示 ID3v1 v1 = mp3file.getID3v1Tag(); byte[] ary = v1.getTitle().getBytes("ISO-8859-1"); title = new String(ary); ary = v1.getAlbumTitle().getBytes("ISO-8859-1"); albumTitle = new String(ary); ary = v1.getTrackNumberOnAlbum().getBytes("ISO-8859-1"); track = new String(ary); ary = v1.getArtist().getBytes("ISO-8859-1"); artist = new String(ary); } // 読み込んだタグを画面に設定 this.fileName.setText(fileName); this.title.setText(title); this.artist.setText(artist); this.albumTitle.setText(albumTitle); this.track.setText(track); } catch (IOException e) { e.printStackTrace(); } catch (TagException e) { e.printStackTrace(); } } サンプルソース import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.datatransfer.DataFlavor; import java.awt.dnd.DnDConstants; import java.awt.dnd.DropTarget; import java.awt.dnd.DropTargetAdapter; import java.awt.dnd.DropTargetDropEvent; import java.io.File; import java.io.IOException; import java.util.List; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JSeparator; import javax.swing.JTextField; import org.farng.mp3.MP3File; import org.farng.mp3.TagException; import org.farng.mp3.id3.AbstractID3v2; import org.farng.mp3.id3.ID3v1; // MP3ファイルのID3タグを読み込んで表示するサンプル // Java ID3 Tag Library + 文字化け対応 public class Id3tagReadSample extends JFrame { public static void main(String[] args) { new Id3tagReadSample(); } JTextField fileName = new JTextField(16); JTextField title = new JTextField(16); JTextField albumTitle = new JTextField(16); JTextField track = new JTextField(16); JTextField artist = new JTextField(16); public Id3tagReadSample() { setTitle("mp3ファイルのID3タグを表示するサンプル(Java ID3 Tag Library + 文字化け対応)"); setBounds(100, 200, 300, 200); setDefaultCloseOperation(EXIT_ON_CLOSE); setLayout(new FlowLayout()); // ドロップターゲット設定 new DropTarget(this, DnDConstants.ACTION_COPY, new MyDropTargetListener()); // 編集しない fileName.setEditable(false); title.setEditable(false); albumTitle.setEditable(false); track.setEditable(false); artist.setEditable(false); // 画面要素貼り付け add(new JLabel("mp3ファイルをドロップして下さい")); putHr(); putLabel("ファイル名 "); add(fileName); putHr(); putLabel("アーティスト "); add(artist); putHr(); putLabel("曲名 "); add(title); putHr(); putLabel("アルバム "); add(albumTitle); putHr(); putLabel("トラック "); add(track); putHr(); // 画面表示 setVisible(true); } // mp3ファイルからID3タグを読んで表示します private void readTag(File file) { MP3File mp3file; try { mp3file = new MP3File(file); String fileName = file.getName(); String title = "--"; String albumTitle = "--"; String track = "--"; String artist = "--"; // v2タグを優先的に表示 if (mp3file.hasID3v2Tag()) { AbstractID3v2 v2 = mp3file.getID3v2Tag(); title = v2.getSongTitle(); albumTitle = v2.getAlbumTitle(); track = v2.getTrackNumberOnAlbum(); artist = v2.getLeadArtist(); } else if (mp3file.hasID3v2Tag()) { // v2タグがない場合v1タグを表示 ID3v1 v1 = mp3file.getID3v1Tag(); byte[] ary = v1.getTitle().getBytes("ISO-8859-1"); title = new String(ary); ary = v1.getAlbumTitle().getBytes("ISO-8859-1"); albumTitle = new String(ary); ary = v1.getTrackNumberOnAlbum().getBytes("ISO-8859-1"); track = new String(ary); ary = v1.getArtist().getBytes("ISO-8859-1"); artist = new String(ary); } // 読み込んだタグを画面に設定 this.fileName.setText(fileName); this.title.setText(title); this.artist.setText(artist); this.albumTitle.setText(albumTitle); this.track.setText(track); } catch (IOException e) { e.printStackTrace(); } catch (TagException e) { e.printStackTrace(); } } // 以下画面設定、DnD用 // ラベル public void putLabel(String text) { JLabel l = new JLabel(text); Dimension dim = l.getPreferredSize(); dim.setSize(85, dim.height); l.setPreferredSize(dim); l.setHorizontalAlignment(JLabel.RIGHT); add(l); } // 水平線 public void putHr() { putHr(1000, 0); } public void putHr(int width, int hight) { JSeparator sp = new JSeparator(JSeparator.HORIZONTAL); sp.setPreferredSize(new Dimension(width, hight)); add(sp); } // ドロップターゲットリスナー // ドロップされたファイルを受け取り、最初のファイルだけ処理します class MyDropTargetListener extends DropTargetAdapter { @Override public void drop(DropTargetDropEvent dtde) { dtde.acceptDrop(DnDConstants.ACTION_COPY); boolean b = false; try { if (dtde.getTransferable().isDataFlavorSupported(DataFlavor.javaFileListFlavor)) { b = true; List File list = (List File ) dtde.getTransferable().getTransferData( DataFlavor.javaFileListFlavor); // 最初のファイルだけ取得 File file = list.get(0); readTag(file); } } catch (Exception e) { e.printStackTrace(); } finally { dtde.dropComplete(b); } } } } 文字化け対応前はこんな画面 文字化け対応 org.farng.mp3.object.AbstractMP3Object.readByteArray(byte[], int)を修正します。 修正前 public void readByteArray(final byte[] arr, final int offset) { readString(new String(arr), offset); } 修正後 UTF-16かどうかをbyte配列の中を覗いて判定し、UTF-16じゃない時はUTF-8で文字列に変換します。 変換後の文字列が0文字だと例外が発生するので、その時はスペース一個足してお茶を濁します。 // 改造後 public void readByteArray(final byte[] arr, final int offset) { try { if (arr.length = offset + 2 arr[offset] == -1 arr[offset + 1] == -2) { // UTF-16はこっち String str = new String(arr, offset, arr.length - offset, "UTF-16"); System.out.println(str); if (str.length() == 0) str += " "; readString(str, 0); } else { // UTF-16っぽくないのはUTF-8で処理します System.out.println(new String(arr, "UTF-8")); readString(new String(arr, "UTF-8"), offset); } } catch (UnsupportedEncodingException e) { // 例外は握り潰します e.printStackTrace(); } } コメント 名前
https://w.atwiki.jp/syusei/pages/4.html
Java Java Technology Java API Reference Bug Database Sun Developer Connection dev.java.net Java Community Process JCP 日本語 JavaOne Online Java Tutorial Java Blue Print Catalog Swing Labs Swing Sample Glassfish Java Tips JavaSE5.0の新機能 J2SE5.0虎の穴 Java SE 6 Mustang新機能 Nishigaya's Weblog Java-Source.net てんぷらメモ JavaSE6でのパフォーマンスの監視と診断 JMonkeyEngine
https://w.atwiki.jp/ce00582/pages/5431.html
import java.awt.*; import javax.swing.*; class pro extends JFrame{ pro(){ setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); // 終了ボタンを有効化する } public static void main( String [] args ){ pro jsf = new pro(); jsf.setTitle( "Swing版フレーム" ); jsf.setSize( 200, 200 ); jsf.setVisible( true ); } }
https://w.atwiki.jp/ce00582/pages/5433.html
import java.awt.*; import javax.swing.*; class pro extends JFrame{ pro(){ setDefaultCloseOperation( WindowConstants.EXIT_ON_CLOSE ); // 終了ボタン有効 Container contentPane = this.getContentPane(); // フレームのコンテントペイン取得 JLabel label1 = new JLabel( new ImageIcon( "girl1.jpg" ) ); JLabel label2 = new JLabel( "女性の写真" ); contentPane.add( label1, BorderLayout.CENTER ); // 中央に写真を配置 contentPane.add( label2, BorderLayout.NORTH ); // テキストを上に配置 } public static void main( String [] args ){ pro jf = new pro(); jf.setTitle( "Swing版フレームのコンテンツペインへの貼り付け" ); jf.setSize( 200, 200 ); jf.setVisible( true ); } }
https://w.atwiki.jp/chapati4it/pages/110.html
Java/swing/サンプル/BasicPlayerサンプル(mp3, 音量調整) サンプルダウンロード BasicPlayerSampleVol.java BasicPlayerでの音量調整 BasicPlayerでの音量調整はとても簡単で、BasicPlayerに対してsetGainを呼び出すだけで完了します。 player.setGain((double)volSlider.getValue() / 100); setGainには0から1.0までのdouble値を渡します。 上記のコードは、0から100の値を取るスライダーの値を100で割ってsetGainに渡しています。 再生開始時の音量調整 BasicPlayerの音量は、新しいファイルを再生するたびにリセットされるので、その都度setGainするとよいでしょう。 // 再生 private void play() throws BasicPlayerException { player.play(); player.setGain((double) volSlider.getValue() / 100); } スライダ操作による音量調整 音量調整のUIにはJSliderを使うのが一般的だと思います。JSliderにChangeListenerを追加して、スライダ操作のイベントを受け取り、音量調整とラベルの更新も行います。 // 音量調整スライダー volSlider = new JSlider(0, 100, 100); // ChangeListener設置 volSlider.addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent e) { try { // スライダが操作されたらsetGainで音量を設定します。 player.setGain((double) volSlider.getValue() / 100); // ラベルも更新します volLabel.setText("" + volSlider.getValue()); } catch (BasicPlayerException e1) { e1.printStackTrace(); } } }); // 音量調整スライダー設置 add(volSlider); コメント 名前